It is frequently desired to connect processing devices such as microcomputers in a network so that one microcomputer can communicate with others in the network. In such networks it is unduly restrictive if a microcomputer can communicate only with its immediate neighbors, i.e. those devices hardwired to it. It is currently known for microcomputers in a network to be capable of executing a process whose function is to route messages through the network. That is, the process would receive a message and execute an instruction the effect of which would be to pass the message to the appropriate neighboring microcomputer where it might be required to repeat the procedure. This is costly both in terms of process execution time on the microcomputer and in terms of the work required to allocate processes of a program to different microcomputers in a particular network architecture.
Message routing devices of various kinds are known. Some are specific to a particular network architecture while others operate by providing switched channels between processing devices connected to the routing device. In many networks, routing devices each input a packet, determine its destination, and then forward the packet to the next device. This is undesirable because it requires storage in each device for transmitted packets and it causes potentially long delays between the output of a packet and its reception. To date, there is not available a flexible, fast and efficient routing device for routing messages in a network.